#include<iostream>
#include<vector>
#include<map>
#include<cmath>
using namespace std;
int n;
vector<pair<int,int>>v;
int cnt=0;

int func(int m,int n)
{
    n=min(m,m-n);
    //先算m的阶乘
    int fac1=1;
    for(int i=m;i>=m-n;i--)
        fac1*=i;
    int fac2=0;
    for(int i=n;i>=1;i--)
        fac2*=i;
    return fac1/fac2;
}

int main()
{
    cin>>n;
    for(int i=0;i<n;i++)
    {
        int x,y;
        cin>>x>>y;
        v.push_back({x,y});
    }
    map<double,int>dict;//第一个参数是距离，第二个参数代表有多少个点
    for(int i=0;i<n;i++)//以第i个坐标作为顶点
    {
        for(int j=0;j<n;j++)
        {
            if(i==j)continue;
            int x1=v[i].first;
            int y1=v[i].second;
            int x2=v[j].first;
            int y2=v[j].second;
            double d=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
            dict[d]++;
        }
        //统计答案
        int sum=0;
        for(auto x:dict)
            sum+=x.second;
        //然后从sum中取2个
        cnt+=func(sum,2);
        //然后减去不合法的
        int del=0;
        for(int u=0;u<n;u++)
        {
            if(u==i)continue;
            
        }
    }
    return 0;
}